package com.tedu.api.list;
import org.testng.annotations.Test;

import java.sql.ClientInfoStatus;
import java.util.*;
/**
 * 链表实现集合  包位置：java.until
 * List接口集合--三个实现类：
 * ArrayList  实现类：  数组实现
 *             特点：查询快【按照下标】，曾删慢【改动下标：元素】
 *  LinkedList   实现类：双向链表实现
 *              特点：查询慢【按照下标】，增删快【首尾元素，中间元素】
 *   添加add（）   获取get（）  删除remove（）
 *   size（）  获取集合总数     clear（）清空集合元素
 *
 *   不一致的方法：
 *   indexof（） LastIndexof
 *   addFirst（）
 *   addLast
 *   removeFirst
 *   removeLast（）
 */

public class LinkedListAPI {
    @Test
    public void testIndexof(){
        List<String> List=new LinkedList<>();
        List.add("三之前");
        List.add("龙虎斗");
        List.add("螺蛳粉");
        List.add("氨糖");
        /**
         * indexof（）   返回值：int
         * 作用:返回指定元素在集合中第一次出现的索引位置
         * 【理解：返回元素的下标位】
         *
         */
        int index=List.indexOf("庵汤");
        /**
         * LinkedList独有方法
         * LastIndexOf（）   返回值：int
         * 作用：返回最后的元素在集合中出现的索引位置
         */
        int LastIndex= List.lastIndexOf("安踏nang");
        System.out.println("返回最后元素下标"+LastIndex);

    }
    @Test
    public void testAR(){
        List<String> List=new LinkedList<>();

        List.add("吊行");
        List.add("锅包肉");
        List.add("罗思枫");
        List.add("龙虎斗");

        ((LinkedList)List).addFirst("榴莲");
        ((LinkedList)List).addFirst("豆汁");
        System.out.println("双向链表"+List);
        ((LinkedList)List).removeFirst();
        System.out.println("双向链表"+List);
    }
}
































